Datacenters are increasingly being required to rapidly adapt to changes in customer requirements. It is no longer sufficient to provide a fixed, unchanging collection of servers and application software programs. Datacenters could benefit from being able to completely reconfigure servers from heterogeneous physical and logical resources in a short period of time in order to keep up with the constantly varying demands of content and application service providers. The need for a dynamic operating environment has resulted in the development of deployable application servers. Application servers may be deployed using a number of solutions, including script based installations of operating systems and applications remotely launched from a deployment management station, as well as virtual machine (VM) image based installations onto a system running a hypervisor, just to name two examples. In computing, a hypervisor, also called a virtual machine monitor (VMM), is a piece of software/hardware performing a platform-virtualization function that allows multiple instances of an operating system to run on a host computer concurrently (e.g., VMs).
Script-based installations of an application server are typically slow. It may take a significant amount of time to run the script-based installation (up to several hours) and thus may not be adequate to rapidly respond to changes in demand. In contrast, virtual machine images can be deployed more quickly than script-based solutions. However, prior art images of virtual machines must be preconfigured as if they were a homogeneous replica of an application server and thus represent a static resource that cannot be quickly created “on-demand” in response to unexpected requirement and demand changes. Additionally, prior art solutions have relied on centrally managed homogeneous pools of resources to satisfy provisioning requests.
Both script-based and deployment of pre-configured virtual machine images can also include manual processes that may be susceptible to human error. To complicate matters further, existing solutions are not designed to handle a heterogeneous operating environment, wherein different application products, different operating systems, different real (i.e., physical servers), and virtual computer systems may all need to co-exist and work together to optimally satisfy the needs of a datacenter.
The subject matter of the present disclosure is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.